1. Technical Field
The disclosure and claims herein generally relate to automated documentation of computer software, and more specifically relate to generating schema-specific DITA specializations during generic schema transformations to produce documentation from customized extensible mark-up language (XML).
2. Background Art
Modern computer software systems are often extremely complex. Technical documentation of these complex software systems is an important part of the product's development lifecycle and cost. It is very important for the success of the product to document the various details about the product; for example, how the product's user interface functions, what its programming interfaces do, and how its components are installed or deployed. Computer system documentation must be written clearly and in a user friendly way so that a user can quickly understand the aspects of the product that are important to them. However, effectively documenting complex technical products is a daunting task.
In general, many software products today can be configured using XML. Typically, one or more XML grammars that can be understood or parsed by the product code are developed for the product's configuration data. For example, with some software products, a default configuration is shipped with the product so that the customer can use it “out of the box.” In addition, the customer can develop their own set of configuration to fit their specific needs. This results in a couple of different technical documentation requirements. First, since the system's configuration is completely alterable by a customer, the details of the configuration schemas must be exposed. This type of documentation explains to the customer what each element in the schema means and how it could be configured. In addition, documentation is required for the default configuration since some customers will use the default configuration out of the box. In other words, a default configuration specification is needed so that the customer can understand the purpose for each of the default elements defined in the configuration.
The task of producing a configuration specification is especially daunting after a large set of complex XML configuration files have been customized. The normal process for documenting the information contained in these files would be to write an XSL transform for each file to generate HTML output (or other suitable output, such as PDF). Currently, however, this process is extremely inefficient as it requires a large information development effort. That is, it is very time consuming to have to create an XSL transform by hand for every possible schema in which the documentation of XML instance data is required.
What is needed is a method and apparatus for documentation of XML data with little intervention of the document creator, and where the document creator is not required to have knowledge of complicated programming and data structures. Without a way to further automate the documentation process, computer system development will continue to suffer from high documentation costs and lower documentation consistency.